The present invention relates to computer software utility programs, and more specifically to performance of actions on objects in software systems having a graphical interface.
Performance of actions on objects can require acting directly on one or more characteristics of an object. Individual devices available to a user for acting on object characteristics have limited capabilities, for example, moving the mouse can only act simultaneously on two independent characteristics, an X and Y axis.
To modify a greater number of characteristics a user will have to subdivide the global modification into a succession of elementary manipulations involving a number of characteristics, each characteristic compatible with the capabilities of an available device. To achieve a desired overall manipulation, a user may need to interact with several devices (keyboard, mouse buttons, joysticks, touchpads, etc.) and/or with other elements of a user interface (command buttons, menu items, dialog boxes items, handles, etc.) to move from one elementary manipulation to the next.
In some existing software applications, a number of displacement actions can be controlled by different buttons on a toolbar. Activating one button will cause the corresponding type of displacement to be applied to the objects in the scene. The drawback of this is that the user has to constantly move to and from a toolbar and the selected object.
Other existing software applications provide for handles to appear around an object to be displaced. Performance of actions on an object has been achieved directly on the scene through manipulation of the handles surrounding an object. The handles generally reflect the size and shape of the object. However, in complex arrangements, the number of handles on a scene and their surrounding presence around the objects can become a nuisance to a user trying to discern the overall object structure. The user can be hampered in the performance of other parallel actions. Moreover, the handles are generally oriented according to a reference system which is defined by the object selection and cannot be directly modified in context by the user. Another drawback of such applications is that displaying handles may require significant processing time if the number of selected objects is high.
It would be useful to have a single, compact representation of a programmable tool which allows the user to perform several actions on selected objects in a scene.
Accordingly, the present invention provides a software control method and apparatus for implementing a knowledge-based polymorph undockable toolbar which can be used to perform actions on objects created and managed by computer software applications. A knowledge-based polymorph undockable toolbar merges into a small space tool for executing various commands that would require substantial screen space if represented by standard icons on a toolbar and can be used to manipulate objects or groups of objects. The knowledge based polymorph undockable toolbar can also act to reduce the number of user interactions needed to perform a manipulation task.
The present invention includes a method of acting upon an object displayed on a computer screen, including imbedding a software tool into an object scene, wherein the software tool includes multiple user interactive areas. Each area can be associated with a function for acting upon the object. A user can activate an area causing the program to perform the function associated with the activated interactive area on the object.
Generally, in one aspect, a function performed can be responsive to knowledge based criteria relating to the object on which the function is performed. In addition, a second software tool can be displayed in an area of the object scene remote from the first software tool and the first software tool can be controlled with the second software tool.
In another aspect, the software tool can be moved off the object scene and individual visual representations, each associated with a function of the software tool, can be displayed. The visual representations can also be used to execute the individual functions. In addition the individual visual representations can be transferred back into the object scene and morphed into the software tool.
This invention can also include manipulating a particular user interactive area of the software tool to change the position of the software tool with respect to the objects in the object scene responsive to the manipulation of the particular user interactive area. One convenient interactive area that can be used for such manipulation is a tool anchor.
In one embodiment, one or more objects in the object scene can be selected and a function associated with an activated interactive area can be executed on the objects selected.
In another aspect of the invention, a knowledge-based polymorph undockable toolbar can contain an anchor which allows a user, by a simple drag-and-drop operation, to change the reference point on an object. A knowledge-based polymorph undockable toolbar can also be used as a linking mechanism to connect selected objects with other objects in a scene. In one specific embodiment, a command device, such as the control key on a keyboard, can be activated to effect the alignment.
In another specific embodiment, a computer system software tool for facilitating positioning of a selected object on a computer screen can include three axis, each axis perpendicular to one another wherein each axis controls translational movement of the object. In addition this embodiment can include three arcs, each arc intersecting two axis, and wherein each arc controls rotational movement of the object and three planes, wherein each plane is defined by the intersection of two axis and each plane controls planar movement of the object. The software tool can also include an anchor for attaching the tool to the object and a free rotation handle.
In one aspect of the invention, a tool anchored to an object can manipulate the position of the attached object responsive to actuation of the tool. An unanchored tool can manipulate all objects displayed on the screen responsive to actuation of the tool.
In addition, the software tool can be aligned with an absolute axis or positioned and oriented onto an object such that the object can be directly manipulated by activation of the tool. In one embodiment, the position and orientation of the tool can be determined by context sensitive, semantical object interpretation. In addition, an axis indicator can cause an axis associated with an indicator to be perpendicular to the screen.
This invention can also embody a computer system, a programmed computer, a computer program residing on a computer-readable medium or a method of interacting with a computer and embodying the concepts described above.
The details of one or more embodiments of the invention are set forth in the accompanying drawings and the description below. Implementations can provide advantages such as the capability of efficiently manipulating objects in an object scene. Other features, objects, and advantages of the invention will be apparent from the description, the drawings and the claims.
FIG. 1 is an exemplary illustration of a knowledge-based polymorph undockable toolbar Compass and associated icons according to this invention.
FIG. 2 is an illustration of a knowledge-based polymorph undockable toolbar in an object scene.
FIG. 3 is an illustration of an unattached GUI Compass.
FIG. 4 is an illustration of movement resultant from an unattached GUI Compass.
FIG. 5 illustrates movement caused by dragging an YZ arc.
FIG. 6 illustrates movement caused by dragging a ZY plane.
FIG. 7 illustrates rotational movement caused by dragging a rotational handle.
FIG. 8 illustrates an axis becoming perpendicular to the computer screen after selecting the axis letter designation.
FIG. 9 illustrate anchoring a 3-Compass to an object.
FIG. 10 illustrates movement caused by dragging the axis of an anchored compass.
FIG. 11 illustrates a repositioned planar patch following Z translation.
FIG. 12 illustrates alignment of a knowledge-based polymorph undockable toolbar compass with an object edge.
FIG. 13 illustrates using a knowledge-based polymorph undockable toolbar compass as a temporary reference axis.
FIG. 14 illustrates an anchored compass.
FIG. 15 illustrates a manipulator in conjunction with an object.
FIG. 16 illustrates a compass dragged onto a planar patch.
FIG. 17 illustrates a compass oriented according to the orientation of a planar patch.
FIG. 18 illustrates a compass reoriented with a privilege plane selected from a menu.
FIG. 19 illustrates the YZ selected as the privileged plane for the compass.
FIG. 20 illustrates a knowledge-based polymorph undockable toolbar compass attached to a rectangular patch.
FIG. 21 illustrates alignment during knowledge based translation of an object.
FIG. 22 illustrates translation effected using knowledge based translation.
FIG. 23 illustrates alignment during non knowledge-based translation.
FIG. 24 illustrates translation effected using non knowledge based translation.
FIG. 25 is a block diagram of a computer system.